package com.matt.service;

import com.matt.commons.dto.sso.AreaDTO;
import com.matt.commons.dto.sso.StaffDTO;
import com.matt.domain.record.LiveRecord;
import com.matt.foundation.vo.liveRecord.BaseInfoVo;
import com.matt.foundation.vo.liveRecord.RecordListVo;
import com.matt.foundation.vo.observation.LiveRecordClassesVo;
import org.springframework.data.domain.Page;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2017/8/3
 * *******************************
 */
public interface LiveRecordService {
    LiveRecord addLiveRecord(String title, String content, String resourceUrl, String[] childrenIds, Integer mediaType, Integer category, String coursePlanId, StaffDTO staff, AreaDTO area);

    LiveRecord addLiveRecord(String title, String content, MultipartFile[] files, String[] childrenIds, Integer mediaType, Integer category, String classesCoursePlanId, StaffDTO staff, AreaDTO area);

    Page<RecordListVo> getRecordPage(String staffId, Integer pageNum, Integer pageSize);

    BaseInfoVo statisticsInfo(StaffDTO staff, AreaDTO area);

    List<LiveRecordClassesVo> getChildrenByArea(String areaId);

    Map getChildrenByCourse(String coursePlanId, Integer category);

    Page<RecordListVo> getRecordPageByAreaId(String areaId, Integer pageNum, Integer pageSize);

    Page<RecordListVo> getLiveRecordByPlanId(String coursePlanId, Integer pageNum, Integer pageSize);

    LiveRecord findById(String id);

    LiveRecord deleteLiveRecord(StaffDTO staff, String recordId);
}
